﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace JasLib.Interop.Win32
{
    public static partial class SHLWAPI
    {
        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "DllGetVersion", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi, SetLastError = true)]
        public static extern HRESULT DllGetVersion(out DLLVERSIONINFO pdvi);

        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "DllGetVersion", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi, SetLastError = true)]
        public static extern HRESULT DllGetVersion(out DLLVERSIONINFO2 pdvi);

        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "HashData", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi, SetLastError = true)]
        public static extern HRESULT HashData(
            [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] byte[] pbData,
            [In] uint cbData,
            [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] byte[] pbHash,
            [In] uint cbHash);

        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "IsInternetESCEnabled", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi, SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool IsInternetESCEnabled();

        [Obsolete]
        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "IsOS", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi, SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool IsOS([In] IsOSCode dwOS);

        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "PathCombineW", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi, SetLastError = true)]
        public unsafe static extern UINT_PTR PathCombine(
            [Out] StringBuilder lpszDest,
            [In] string lpszDir,
            [In] string lpszFile);

        /// <summary>
        /// Safe overload for the Win32 PathCombine function that throws an exception if it encounters any error.
        /// </summary>
        public static string PathCombine(string lpszDir, string lpszFile)
        {
            StringBuilder sb = new StringBuilder(Constants.MAX_PATH);
            PathCombine(sb, lpszDir, lpszFile);
            return sb.ToString();
        }

        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "PathFileExistsW", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi, SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool PathFileExists(string lpPathName);

        [DllImport(Constants.ModuleNames.SHLWAPI, SetLastError = true, EntryPoint = "PathFindNextComponentW", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi)]
        public static extern string PathFindNextComponent([In] string pszPath);

        [DllImport(Constants.ModuleNames.SHLWAPI, SetLastError = true, EntryPoint = "PathGetArgsW", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi)]
        public static extern string PathGetArgs([In] string pszPath);

        [DllImport(Constants.ModuleNames.SHLWAPI, SetLastError = true, EntryPoint = "PathGetDriveNumberW", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi)]
        public static extern int PathGetDriveNumber([In] string lpsz);

        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "PathIsDirectoryW", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi, SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool PathIsDirectory([In] string pszPath);

        [DllImport(Constants.ModuleNames.SHLWAPI, SetLastError = true, EntryPoint = "PathRemoveFileSpecW", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi)]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool PathRemoveFileSpec([In, Out, MarshalAs(UnmanagedType.LPWStr, SizeConst = Constants.MAX_PATH)] StringBuilder pszPath);

        /// <summary>
        /// Safe wrapper for the PathRemoveFileSpec Win32 function.
        /// </summary>
        public static string PathRemoveFileSpec(string pszPath)
        {
            StringBuilder sb = new StringBuilder(Constants.MAX_PATH);
            sb.Append(pszPath);
            if (!PathRemoveFileSpec(sb))
                return pszPath;
            return sb.ToString();
        }

        [DllImport(Constants.ModuleNames.SHLWAPI, SetLastError = true, EntryPoint = "PathStripPathW", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi)]
        public static extern void PathStripPath([In, Out, MarshalAs(UnmanagedType.LPWStr, SizeConst = Constants.MAX_PATH)] StringBuilder pszPath);

        /// <summary>
        /// Safe wrapper for the PathStripPath Win32 function.
        /// </summary>
        public static string PathStripPath(string pszPath)
        {
            StringBuilder sb = new StringBuilder(Constants.MAX_PATH);
            sb.Append(pszPath);
            PathStripPath(sb);
            return sb.ToString();
        }

        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "SHCreateThread", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi, SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool SHCreateThread(
            [In] THREAD_START_ROUTINE pfnThreadProc,
            [In] UINT_PTR pData,
            [In] SHCT_FLAGS flags,
            [In] THREAD_START_ROUTINE pfnCallback);

        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "SHCreateThreadWithHandle", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi, SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool SHCreateThreadWithHandle(
            [In] THREAD_START_ROUTINE pfnThreadProc,
            [In] UINT_PTR pData,
            [In] SHCT_FLAGS flags,
            [In] THREAD_START_ROUTINE pfnCallback,
            [Out] out HANDLE pHandle);

        /// <summary>
        /// This function is available through Windows XP and Windows Server 2003.
        /// It might be altered or unavailable in subsequent versions of Windows.
        /// In Windows 7 it is also exported as "SHMessageBoxCheckW".
        /// </summary>
        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "#191", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi, SetLastError = true)]
        public static extern DialogResultType SHMessageBoxCheck(
            [In] HWND hwnd,
            [In, MarshalAs(UnmanagedType.LPWStr)] string pszText,
            [In, MarshalAs(UnmanagedType.LPWStr)] string pszTitle,
            [In] MessageBoxFlags uType,
            [In] int iDefault,
            [In, MarshalAs(UnmanagedType.LPWStr)] string pszRegVal);

        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "SHReleaseThreadRef", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi)]
        public static extern HRESULT SHReleaseThreadRef();

        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "SHSetThreadRef", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi)]
        public static extern HRESULT SHSetThreadRef([In, MarshalAs(UnmanagedType.Interface)] object punk);

        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "StrFormatByteSizeW", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi)]
        public static extern UINT_PTR StrFormatByteSize(
            [In] long qdw,
            [Out] StringBuilder pszBuf,
            [In] uint cchBuf);

        /// <summary>
        /// Safe wrapper for the StrFormatByteSize Win32 function.
        /// </summary>
        public static string StrFormatByteSize(long qdw)
        {
            StringBuilder sb = new StringBuilder(Constants.MAX_PATH);
            if (StrFormatByteSize(qdw, sb, (uint)sb.Capacity) == UINT_PTR.Zero)
                throw new Win32Exception();
            return sb.ToString();
        }

        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "StrFormatByteSizeExW", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi)]
        public static extern HRESULT StrFormatByteSizeEx(
            [In] ulong ull,
            [In] SFBS_FLAGS flags,
            [Out] StringBuilder pszBuf,
            [In] uint cchBuf);

        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "StrRetToStrW", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi)]
        public static extern HRESULT StrRetToStr(
            [In, Out] ref STRRET pstr,
            [In] LPITEMIDLIST pidl,
            [Out] out UINT_PTR ppszName);

        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "UrlEscapeW", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi)]
        public static extern HRESULT UrlEscape(
            [In, MarshalAs(UnmanagedType.LPWStr)] string pszURL,
            [Out] StringBuilder pszEscaped,
            [In, Out] ref uint pcchEscaped,
            [In] UrlEscapeFlags dwFlags);

        [DllImport(Constants.ModuleNames.SHLWAPI, SetLastError = true, EntryPoint = "UrlIsW", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi)]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool UrlIs(
            [In] string pszUrl,
            [In] URLIS UrlIs);

        [DllImport(Constants.ModuleNames.SHLWAPI, EntryPoint = "UrlUnescapeW", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Winapi)]
        public static extern HRESULT UrlUnescape(
            [In, Out] StringBuilder pszURL,
            [Out] StringBuilder pszUnescaped,
            [In, Out] ref uint pcchUnescaped,
            [In] UrlEscapeFlags dwFlags);
    }
}

/*
Microsoft (R) COFF/PE Dumper Version 10.00.40219.01
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file c:\Windows\System32\shlwapi.dll

File Type: DLL

  Section contains the following exports for SHLWAPI.dll

    00000000 characteristics
    4CE7A0C9 time date stamp Sat Nov 20 04:19:53 2010
        0.00 version
           1 ordinal base
         925 number of functions
         369 number of names

    ordinal hint RVA      name

        579    0 00012EFC AssocCreate
        584    1 00009150 AssocGetPerceivedType
        585    2 00003AC4 AssocIsDangerous
        586    3 0002C878 AssocQueryKeyA
        587    4 000130A4 AssocQueryKeyW
        588    5 0002C5A0 AssocQueryStringA
        589    6 0002C730 AssocQueryStringByKeyA
        590    7 0000BA50 AssocQueryStringByKeyW
        591    8 0000189C AssocQueryStringW
        592    9 00005B20 ChrCmpIA
        593    A 0000FAC0 ChrCmpIW
        594    B 00030B10 ColorAdjustLuma
        595    C 0001DBE0 ColorHLSToRGB
        607    D 0001DAF4 ColorRGBToHLS
        168    E 0001E510 ConnectToConnectionPoint
        569    F 00030BF0 DelayLoadFailureHook
        608   10 00041414 DllGetVersion
         14   11 00035F68 GetAcceptLanguagesA
         15   12 0001B230 GetAcceptLanguagesW
        609   13 000081D0 GetMenuPosFromID
        610   14 00019EA0 HashData
        568   15 00039EE8 IStream_Copy
        184   16 0000A8F8 IStream_Read
        512   17 0000A950 IStream_ReadPidl
        596   18 0001C1E4 IStream_ReadStr
        213   19 00008BC0 IStream_Reset
        214   1A 0001E460 IStream_Size
        212   1B 0001183C IStream_Write
        513   1C 000118EC IStream_WritePidl
        597   1D 0001C0BC IStream_WriteStr
        169   1E 000142E0 IUnknown_AtomicRelease
        256   1F 000072CC IUnknown_GetSite
        172   20 000131B4 IUnknown_GetWindow
        176   21 00011C28 IUnknown_QueryService
        199   22 00014300 IUnknown_Set
        174   23 0000AE44 IUnknown_SetSite
        612   24 00030524 IntlStrEqWorkerA
        619   25 00030568 IntlStrEqWorkerW
        620   26 00030C40 IsCharSpaceA
         29   27 0001AEDC IsCharSpaceW
        553   28 00034370 IsInternetESCEnabled
        437   29 00013E3C IsOS
        418   2A 0003456C MLFreeLibrary
        377   2B 00034530 MLLoadLibraryA
        378   2C 000344E8 MLLoadLibraryW
          1   2D 00038F24 ParseURLA
          2   2E 0000D2E8 ParseURLW
        622   2F 000053A8 PathAddBackslashA
        623   30 00013F70 PathAddBackslashW
        624   31 00029EE0 PathAddExtensionA
        625   32 0002E630 PathAddExtensionW
        646   33 00005710 PathAppendA
        647   34 00010850 PathAppendW
        648   35 0001104C PathBuildRootA
        649   36 00013EF4 PathBuildRootW
        650   37 00029F98 PathCanonicalizeA
        651   38 00006768 PathCanonicalizeW
        652   39 0002BB7C PathCombineA
        653   3A 00013DFC PathCombineW
        654   3B 00028534 PathCommonPrefixA
        655   3C 00014360 PathCommonPrefixW
        656   3D 00028DC0 PathCompactPathA
        657   3E 0002922C PathCompactPathExA
        658   3F 00016650 PathCompactPathExW
        659   40 0002DEA4 PathCompactPathW
        660   41 000387F4 PathCreateFromUrlA
        661   42 00038D70 PathCreateFromUrlAlloc
        662   43 0000DF84 PathCreateFromUrlW
        663   44 0002B4D4 PathFileExistsA
        664   45 0000C984 PathFileExistsW
        665   46 0002B358 PathFindExtensionA
        666   47 00012B00 PathFindExtensionW
        667   48 000086C4 PathFindFileNameA
        668   49 00013920 PathFindFileNameW
        669   4A 000296D4 PathFindNextComponentA
        670   4B 0001D2A0 PathFindNextComponentW
        671   4C 00028450 PathFindOnPathA
        672   4D 000031A0 PathFindOnPathW
        673   4E 00028460 PathFindSuffixArrayA
        674   4F 00001700 PathFindSuffixArrayW
        675   50 00027BF8 PathGetArgsA
        676   51 000069A0 PathGetArgsW
        677   52 000298BC PathGetCharTypeA
        678   53 0001C5C0 PathGetCharTypeW
        679   54 000113E8 PathGetDriveNumberA
        680   55 00013D60 PathGetDriveNumberW
        681   56 00029818 PathIsContentTypeA
        682   57 0002E480 PathIsContentTypeW
        683   58 00028BBC PathIsDirectoryA
        684   59 00028CA0 PathIsDirectoryEmptyA
        685   5A 0002DDD0 PathIsDirectoryEmptyW
        686   5B 000085DC PathIsDirectoryW
        687   5C 0002898C PathIsFileSpecA
        688   5D 00003820 PathIsFileSpecW
        689   5E 00029CE4 PathIsLFNFileSpecA
        690   5F 0002E5AC PathIsLFNFileSpecW
        691   60 000289D0 PathIsNetworkPathA
        692   61 00013050 PathIsNetworkPathW
        693   62 000286D0 PathIsPrefixA
        694   63 00011698 PathIsPrefixW
        695   64 00028A20 PathIsRelativeA
        696   65 00013DBC PathIsRelativeW
        697   66 0002A000 PathIsRootA
        698   67 00010E80 PathIsRootW
        699   68 000297A4 PathIsSameRootA
        700   69 0001D308 PathIsSameRootW
        701   6A 00029CAC PathIsSystemFolderA
        702   6B 0002E570 PathIsSystemFolderW
        703   6C 0002BC14 PathIsUNCA
        704   6D 0002B460 PathIsUNCServerA
        705   6E 0002B3E4 PathIsUNCServerShareA
        706   6F 0000AA7C PathIsUNCServerShareW
        707   70 0000858C PathIsUNCServerW
        708   71 00010C30 PathIsUNCW
        709   72 0002BC38 PathIsURLA
        710   73 0000EBE0 PathIsURLW
        711   74 00027B80 PathMakePrettyA
        712   75 00002240 PathMakePrettyW
        713   76 00029AEC PathMakeSystemFolderA
        714   77 0001B610 PathMakeSystemFolderW
        715   78 0002B86C PathMatchSpecA
        716   79 0002B87C PathMatchSpecExA
        717   7A 0001ECA4 PathMatchSpecExW
        718   7B 00011B64 PathMatchSpecW
        719   7C 0002B528 PathParseIconLocationA
        720   7D 0000B8B4 PathParseIconLocationW
        721   7E 0002965C PathQuoteSpacesA
        722   7F 0002E3D0 PathQuoteSpacesW
        723   80 0002872C PathRelativePathToA
        724   81 0001C648 PathRelativePathToW
        725   82 00027C58 PathRemoveArgsA
        726   83 000037E4 PathRemoveArgsW
        727   84 00029E70 PathRemoveBackslashA
        728   85 0000D014 PathRemoveBackslashW
        729   86 000059BC PathRemoveBlanksA
        730   87 0000A69C PathRemoveBlanksW
        731   88 0002A00C PathRemoveExtensionA
        732   89 000092D8 PathRemoveExtensionW
        733   8A 0002BBB4 PathRemoveFileSpecA
        734   8B 0000A43C PathRemoveFileSpecW
        735   8C 0002A07C PathRenameExtensionA
        736   8D 0002E6C0 PathRenameExtensionW
        737   8E 00028B08 PathSearchAndQualifyA
        738   8F 000042F8 PathSearchAndQualifyW
        739   90 0002950C PathSetDlgItemPathA
        740   91 0002E260 PathSetDlgItemPathW
        741   92 00029728 PathSkipRootA
        742   93 0001D22C PathSkipRootW
        743   94 00028A5C PathStripPathA
        744   95 0001A764 PathStripPathW
        745   96 0002A124 PathStripToRootA
        746   97 00010F1C PathStripToRootW
        747   98 0002BB54 PathUnExpandEnvStringsA
        748   99 0002ECA0 PathUnExpandEnvStringsW
        749   9A 00029D6C PathUndecorateA
        750   9B 0001A5F0 PathUndecorateW
        751   9C 00029C6C PathUnmakeSystemFolderA
        752   9D 0002E524 PathUnmakeSystemFolderW
        753   9E 0002B5B4 PathUnquoteSpacesA
        754   9F 00010E8C PathUnquoteSpacesW
        219   A0 00014494 QISearch
          7   A1 0001135C SHAllocShared
        345   A2 00030F38 SHAnsiToAnsi
        215   A3 00012BF4 SHAnsiToUnicode
        755   A4 00018584 SHAutoComplete
        756   A5 0003131C SHCopyKeyA
        757   A6 0001BCDC SHCopyKeyW
         12   A7 00007B08 SHCreateMemStream
        758   A8 00002E54 SHCreateShellPalette
        759   A9 0003B000 SHCreateStreamOnFileA
        760   AA 00009FA8 SHCreateStreamOnFileEx
        761   AB 000064E4 SHCreateStreamOnFileW
        762   AC          SHCreateStreamWrapper (forwarded to SHUNIMPL.#UNIMPL_SHCreateStreamWrapper)
         16   AD 0000C950 SHCreateThread
        763   AE 000069E8 SHCreateThreadRef
        615   AF 000062D0 SHCreateThreadWithHandle
        764   B0 0002C114 SHDeleteEmptyKeyA
        765   B1 0002ECC8 SHDeleteEmptyKeyW
        766   B2 00016A10 SHDeleteKeyA
        767   B3 00002908 SHDeleteKeyW
        768   B4 00036AF4 SHDeleteOrphanKeyA
        769   B5 00036B44 SHDeleteOrphanKeyW
        770   B6 0002C208 SHDeleteValueA
        771   B7 000080C0 SHDeleteValueW
        772   B8 000313A0 SHEnumKeyExA
        773   B9 000037B8 SHEnumKeyExW
        774   BA 000313CC SHEnumValueA
        775   BB 000046E0 SHEnumValueW
        353   BC 0002EDBC SHFormatDateTimeA
        354   BD 00017400 SHFormatDateTimeW
         10   BE 000116FC SHFreeShared
        776   BF 00002F54 SHGetInverseCMAP
        777   C0 00008908 SHGetThreadRef
        778   C1 00004E50 SHGetValueA
        779   C2 000129F4 SHGetValueW
        515   C3 00007438 SHGetViewStatePropertyBag
        204   C4 00014540 SHIsChildOrSelf
        780   C5 00019F40 SHIsLowMemoryMachine
        487   C6 0000AD8C SHLoadIndirectString
          8   C7 00007264 SHLockShared
        185   C8 00033650 SHMessageBoxCheckA
        191   C9 000334BC SHMessageBoxCheckW
        781   CA 000115A0 SHOpenRegStream2A
        782   CB 000114B0 SHOpenRegStream2W
        783   CC 00039DA8 SHOpenRegStreamA
        784   CD 00039D80 SHOpenRegStreamW
        567   CE 0001D52C SHPropertyBag_ReadStrAlloc
        570   CF 00017950 SHPropertyBag_WriteBSTR
        785   D0 00031410 SHQueryInfoKeyA
        786   D1 0000376C SHQueryInfoKeyW
        787   D2 00031770 SHQueryValueExA
        788   D3 000142A8 SHQueryValueExW
        789   D4 0000BF94 SHRegCloseUSKey
        790   D5 0003E5BC SHRegCreateUSKeyA
        791   D6 0003E4E4 SHRegCreateUSKeyW
        792   D7 0003E704 SHRegDeleteEmptyUSKeyA
        793   D8 0003E6F0 SHRegDeleteEmptyUSKeyW
        794   D9 0003E660 SHRegDeleteUSValueA
        795   DA 0003E650 SHRegDeleteUSValueW
        796   DB 00031460 SHRegDuplicateHKey
        797   DC 0002ADA0 SHRegEnumUSKeyA
        798   DD 00017B84 SHRegEnumUSKeyW
        799   DE 0002AF1C SHRegEnumUSValueA
        800   DF 0002EAD0 SHRegEnumUSValueW
        801   E0 0003E794 SHRegGetBoolUSValueA
        802   E1 0000C330 SHRegGetBoolUSValueW
        280   E2 000314B4 SHRegGetIntW
        803   E3 000316A8 SHRegGetPathA
        804   E4 00018114 SHRegGetPathW
        805   E5 0002ABF4 SHRegGetUSValueA
        806   E6 0000C464 SHRegGetUSValueW
        807   E7 00004D34 SHRegGetValueA
        808   E8 00013FE4 SHRegGetValueW
        809   E9 00017464 SHRegOpenUSKeyA
        810   EA 0000C1A0 SHRegOpenUSKeyW
        811   EB 0002B0CC SHRegQueryInfoUSKeyA
        812   EC 00017FD0 SHRegQueryInfoUSKeyW
        813   ED 0002A8E4 SHRegQueryUSValueA
        814   EE 0000C008 SHRegQueryUSValueW
        815   EF 00031600 SHRegSetPathA
        816   F0 00031554 SHRegSetPathW
        817   F1 0002AD0C SHRegSetUSValueA
        818   F2 0002EA30 SHRegSetUSValueW
        819   F3 0002AA58 SHRegWriteUSValueA
        820   F4 0002E88C SHRegWriteUSValueW
        821   F5 0003ED20 SHRegisterValidateTemplate
        822   F6 00018AB4 SHReleaseThreadRef
        467   F7 0002DB9C SHRunIndirectRegClientCommand
        432   F8 000341BC SHSendMessageBroadcastA
        433   F9 000341E0 SHSendMessageBroadcastW
        823   FA 000073D4 SHSetThreadRef
        824   FB 0002C050 SHSetValueA
        825   FC 00008C74 SHSetValueW
        826   FD 0000B000 SHSkipJunction
        827   FE 0001D144 SHStrDupA
        828   FF 0001297C SHStrDupW
        203  100 00033BC0 SHStripMneumonicA
        225  101 00013168 SHStripMneumonicW
        217  102 0000646C SHUnicodeToAnsi
        346  103 00031004 SHUnicodeToUnicode
          9  104 00011334 SHUnlockShared
        829  105 0002C280 ShellMessageBoxA
        388  106 0002F8C0 ShellMessageBoxW
        830  107 000300C4 StrCSpnA
        831  108 00030128 StrCSpnIA
        832  109 0003018C StrCSpnIW
        833  10A 000084A8 StrCSpnW
        834  10B 0002FC1C StrCatBuffA
        835  10C 0002FBEC StrCatBuffW
        836  10D 00030A10 StrCatChainW
        837  10E 0002FBAC StrCatW
        838  10F 0001AF54 StrChrA
        839  110 00005AB0 StrChrIA
        840  111 0000FB10 StrChrIW
        841  112 0002FD04 StrChrNIW
        842  113 00017688 StrChrNW
        843  114 0000FA50 StrChrW
        155  115 00004EE4 StrCmpCA
        156  116 00012D00 StrCmpCW
        157  117 00011140 StrCmpICA
        158  118 00013D10 StrCmpICW
        844  119 00012AC0 StrCmpIW
        845  11A 00009410 StrCmpLogicalW
        846  11B 00030200 StrCmpNA
        151  11C 0001B06C StrCmpNCA
        152  11D 0000D14C StrCmpNCW
        847  11E 00005BA0 StrCmpNIA
        153  11F 0000521C StrCmpNICA
        154  120 0000FEC0 StrCmpNICW
        848  121 0000FA80 StrCmpNIW
        849  122 0000B174 StrCmpNW
        850  123 0000D11C StrCmpW
        851  124 0002FB90 StrCpyNW
        852  125 0002FAEC StrCpyW
        853  126 00030498 StrDupA
        854  127 000104AC StrDupW
        855  128 000305A8 StrFormatByteSize64A
        856  129 00030610 StrFormatByteSizeA
        857  12A 0001E26C StrFormatByteSizeEx
        858  12B 0001F668 StrFormatByteSizeW
        859  12C 00030630 StrFormatKBSizeA
        860  12D 00030620 StrFormatKBSizeW
        861  12E 00031F88 StrFromTimeIntervalA
        862  12F 00032048 StrFromTimeIntervalW
        863  130 00030524 StrIsIntlEqualA
        864  131 00030568 StrIsIntlEqualW
        865  132 0002FC4C StrNCatA
        866  133 0002FCC0 StrNCatW
        867  134 0002FE80 StrPBrkA
        868  135 00007278 StrPBrkW
        869  136 00004C9C StrRChrA
        870  137 0002FD74 StrRChrIA
        871  138 0002FE0C StrRChrIW
        872  139 0000B85C StrRChrW
        873  13A 0003026C StrRStrIA
        874  13B 0001DC78 StrRStrIW
        875  13C 00011960 StrRetToBSTR
        876  13D 00030898 StrRetToBufA
        877  13E 00011220 StrRetToBufW
        878  13F 0003081C StrRetToStrA
        879  140 00011078 StrRetToStrW
        880  141 0002FFD0 StrSpnA
        881  142 00030070 StrSpnW
        882  143 00002FF8 StrStrA
        883  144 00005A1C StrStrIA
        884  145 0000FB70 StrStrIW
        885  146 000303F0 StrStrNIW
        886  147 00030340 StrStrNW
        887  148 000068F0 StrStrW
        888  149 0002FEE4 StrToInt64ExA
        889  14A 0001D5A8 StrToInt64ExW
        890  14B 0001A7D0 StrToIntA
        891  14C 0002FF88 StrToIntExA
        892  14D 0001D560 StrToIntExW
        893  14E 0000CFB8 StrToIntW
        894  14F 000306A4 StrTrimA
        895  150 0000B090 StrTrimW
        896  151 00038A94 UrlApplySchemeA
        897  152 0000346C UrlApplySchemeW
        898  153 00038110 UrlCanonicalizeA
        899  154 0000E334 UrlCanonicalizeW
        900  155 000397E0 UrlCombineA
        901  156 0000F790 UrlCombineW
        902  157 00038674 UrlCompareA
        903  158 00038BF0 UrlCompareW
        904  159 00038944 UrlCreateFromPathA
        905  15A 00004820 UrlCreateFromPathW
        906  15B 000381C0 UrlEscapeA
        907  15C 0000F508 UrlEscapeW
        462  15D 00039930 UrlFixupW
        908  15E 000385C4 UrlGetLocationA
        909  15F 0001AFD0 UrlGetLocationW
        910  160 00038320 UrlGetPartA
        911  161 000082AC UrlGetPartW
        912  162 00038E24 UrlHashA
        913  163 00038E7C UrlHashW
        914  164 0003848C UrlIsA
        915  165 000385A4 UrlIsNoHistoryA
        916  166 000385B4 UrlIsNoHistoryW
        917  167 00038584 UrlIsOpaqueA
        918  168 00038594 UrlIsOpaqueW
        919  169 0000CEE4 UrlIsW
        920  16A 00002044 UrlUnescapeA
        921  16B 0000EC40 UrlUnescapeW
        276  16C 00040198 WhichPlatform
        922  16D 00032270 wnsprintfA
        923  16E 00016494 wnsprintfW
        924  16F 00032200 wvnsprintfA
        925  170 000322E4 wvnsprintfW
          3      00027F6C [NONAME]
          4      00003154 [NONAME]
          5      000280DC [NONAME]
          6      000030B8 [NONAME]
         11      0001EFC0 [NONAME]
         13      00035E0C [NONAME]
         17      0001C150 [NONAME]
         18      00009890 [NONAME]
         19      00009DC0 [NONAME]
         20      000099D0 [NONAME]
         21      00009E44 [NONAME]
         22      0000984C [NONAME]
         23      000105CC [NONAME]
         24      00012A28 [NONAME]
         25               [NONAME] (forwarded to user32.IsCharAlphaW)
         26               [NONAME] (forwarded to user32.IsCharUpperW)
         27               [NONAME] (forwarded to user32.IsCharLowerW)
         28               [NONAME] (forwarded to user32.IsCharAlphaNumericW)
         30      00030DCC [NONAME]
         31      00030D60 [NONAME]
         32      00030DAC [NONAME]
         33      00030CAC [NONAME]
         34      00030D00 [NONAME]
         35      00030E08 [NONAME]
         36               [NONAME] (forwarded to USER32.AppendMenuW)
         37               [NONAME] (forwarded to USER32.CallWindowProcW)
         38               [NONAME] (forwarded to USER32.CharLowerW)
         39               [NONAME] (forwarded to USER32.CharLowerBuffW)
         40               [NONAME] (forwarded to USER32.CharNextW)
         41               [NONAME] (forwarded to USER32.CharPrevW)
         42               [NONAME] (forwarded to USER32.CharToOemW)
         43               [NONAME] (forwarded to USER32.CharUpperW)
         44               [NONAME] (forwarded to USER32.CharUpperBuffW)
         45               [NONAME] (forwarded to KERNEL32.CompareStringW)
         46               [NONAME] (forwarded to USER32.CopyAcceleratorTableW)
         47               [NONAME] (forwarded to USER32.CreateAcceleratorTableW)
         48               [NONAME] (forwarded to GDI32.CreateDCW)
         49               [NONAME] (forwarded to USER32.CreateDialogParamW)
         50               [NONAME] (forwarded to KERNEL32.CreateDirectoryW)
         51               [NONAME] (forwarded to KERNEL32.CreateEventW)
         52               [NONAME] (forwarded to KERNEL32.CreateFileW)
         53               [NONAME] (forwarded to GDI32.CreateFontIndirectW)
         54               [NONAME] (forwarded to GDI32.CreateICW)
         55               [NONAME] (forwarded to USER32.CreateWindowExW)
         56               [NONAME] (forwarded to USER32.DefWindowProcW)
         57               [NONAME] (forwarded to KERNEL32.DeleteFileW)
         58               [NONAME] (forwarded to USER32.DialogBoxIndirectParamW)
         59               [NONAME] (forwarded to USER32.DialogBoxParamW)
         60               [NONAME] (forwarded to USER32.DispatchMessageW)
         61               [NONAME] (forwarded to USER32.DrawTextW)
         62               [NONAME] (forwarded to GDI32.EnumFontFamiliesW)
         63               [NONAME] (forwarded to GDI32.EnumFontFamiliesExW)
         64               [NONAME] (forwarded to KERNEL32.EnumResourceNamesW)
         65               [NONAME] (forwarded to KERNEL32.FindFirstFileW)
         66               [NONAME] (forwarded to KERNEL32.FindResourceW)
         67               [NONAME] (forwarded to USER32.FindWindowW)
         68               [NONAME] (forwarded to KERNEL32.FormatMessageW)
         69               [NONAME] (forwarded to USER32.GetClassInfoW)
         70               [NONAME] (forwarded to USER32.GetClassLongW)
         71               [NONAME] (forwarded to USER32.GetClassNameW)
         72               [NONAME] (forwarded to USER32.GetClipboardFormatNameW)
         73               [NONAME] (forwarded to KERNEL32.GetCurrentDirectoryW)
         74               [NONAME] (forwarded to USER32.GetDlgItemTextW)
         75               [NONAME] (forwarded to KERNEL32.GetFileAttributesW)
         76               [NONAME] (forwarded to KERNEL32.GetFullPathNameW)
         77               [NONAME] (forwarded to KERNEL32.GetLocaleInfoW)
         78               [NONAME] (forwarded to USER32.GetMenuStringW)
         79               [NONAME] (forwarded to USER32.GetMessageW)
         80               [NONAME] (forwarded to KERNEL32.GetModuleFileNameW)
         81               [NONAME] (forwarded to KERNEL32.GetSystemDirectoryW)
         82               [NONAME] (forwarded to KERNEL32.SearchPathW)
         83               [NONAME] (forwarded to KERNEL32.GetModuleHandleW)
         84               [NONAME] (forwarded to GDI32.GetObjectW)
         85               [NONAME] (forwarded to KERNEL32.GetPrivateProfileIntW)
         86               [NONAME] (forwarded to KERNEL32.GetProfileStringW)
         87               [NONAME] (forwarded to USER32.GetPropW)
         88               [NONAME] (forwarded to KERNEL32.GetStringTypeExW)
         89               [NONAME] (forwarded to KERNEL32.GetTempFileNameW)
         90               [NONAME] (forwarded to KERNEL32.GetTempPathW)
         91               [NONAME] (forwarded to GDI32.GetTextExtentPoint32W)
         92               [NONAME] (forwarded to GDI32.GetTextFaceW)
         93               [NONAME] (forwarded to GDI32.GetTextMetricsW)
         94               [NONAME] (forwarded to USER32.GetWindowLongW)
         95               [NONAME] (forwarded to USER32.GetWindowTextW)
         96               [NONAME] (forwarded to USER32.GetWindowTextLengthW)
         97               [NONAME] (forwarded to KERNEL32.GetWindowsDirectoryW)
         98               [NONAME] (forwarded to USER32.InsertMenuW)
         99               [NONAME] (forwarded to USER32.IsDialogMessageW)
        100               [NONAME] (forwarded to USER32.LoadAcceleratorsW)
        101               [NONAME] (forwarded to USER32.LoadBitmapW)
        102               [NONAME] (forwarded to USER32.LoadCursorW)
        103               [NONAME] (forwarded to USER32.LoadIconW)
        104               [NONAME] (forwarded to USER32.LoadImageW)
        105               [NONAME] (forwarded to KERNEL32.LoadLibraryExW)
        106               [NONAME] (forwarded to USER32.LoadMenuW)
        107               [NONAME] (forwarded to USER32.LoadStringW)
        108               [NONAME] (forwarded to USER32.MessageBoxIndirectW)
        109               [NONAME] (forwarded to USER32.ModifyMenuW)
        110               [NONAME] (forwarded to GDI32.GetCharWidth32W)
        111               [NONAME] (forwarded to GDI32.GetCharacterPlacementW)
        112               [NONAME] (forwarded to KERNEL32.CopyFileW)
        113               [NONAME] (forwarded to KERNEL32.MoveFileW)
        114               [NONAME] (forwarded to USER32.OemToCharW)
        115               [NONAME] (forwarded to KERNEL32.OutputDebugStringW)
        116               [NONAME] (forwarded to USER32.PeekMessageW)
        117               [NONAME] (forwarded to USER32.PostMessageW)
        118               [NONAME] (forwarded to USER32.PostThreadMessageW)
        119      00036B94 [NONAME]
        120      00036C10 [NONAME]
        121      00036CB8 [NONAME]
        122      00036D54 [NONAME]
        123      00036DBC [NONAME]
        124      00036EEC [NONAME]
        125      00036F50 [NONAME]
        126      00036FC4 [NONAME]
        127      00037098 [NONAME]
        128      00037104 [NONAME]
        129      00037184 [NONAME]
        130      000371F8 [NONAME]
        131               [NONAME] (forwarded to USER32.RegisterClassW)
        132               [NONAME] (forwarded to USER32.RegisterClipboardFormatW)
        133               [NONAME] (forwarded to USER32.RegisterWindowMessageW)
        134               [NONAME] (forwarded to USER32.RemovePropW)
        135               [NONAME] (forwarded to USER32.SendDlgItemMessageW)
        136               [NONAME] (forwarded to USER32.SendMessageW)
        137               [NONAME] (forwarded to KERNEL32.SetCurrentDirectoryW)
        138               [NONAME] (forwarded to USER32.SetDlgItemTextW)
        139               [NONAME] (forwarded to USER32.SetMenuItemInfoW)
        140               [NONAME] (forwarded to USER32.SetPropW)
        141               [NONAME] (forwarded to USER32.SetWindowLongW)
        142               [NONAME] (forwarded to USER32.SetWindowsHookExW)
        143               [NONAME] (forwarded to USER32.SetWindowTextW)
        144               [NONAME] (forwarded to GDI32.StartDocW)
        145               [NONAME] (forwarded to USER32.SystemParametersInfoW)
        146               [NONAME] (forwarded to USER32.TranslateAcceleratorW)
        147               [NONAME] (forwarded to USER32.UnregisterClassW)
        148               [NONAME] (forwarded to USER32.VkKeyScanW)
        149               [NONAME] (forwarded to USER32.WinHelpW)
        150               [NONAME] (forwarded to USER32.wvsprintfW)
        159               [NONAME] (forwarded to KERNEL32.CompareStringW)
        160      00032A20 [NONAME]
        161      000329D8 [NONAME]
        162      0000B2D0 [NONAME]
        163      00032CF0 [NONAME]
        164      00011D18 [NONAME]
        165      00011CB0 [NONAME]
        166      00003D80 [NONAME]
        167      0001EB58 [NONAME]
        170      0002BC8C [NONAME]
        171               [NONAME] (forwarded to SHUNIMPL.#246)
        173      0001F710 [NONAME]
        175      00011180 [NONAME]
        177      000173A0 [NONAME]
        178      0000B794 [NONAME]
        179      0001DE0C [NONAME]
        180      00033160 [NONAME]
        181      000331B0 [NONAME]
        182      000331CC [NONAME]
        183      000331E4 [NONAME]
        186      000339C0 [NONAME]
        187      0000B354 [NONAME]
        188      000372C0 [NONAME]
        189      00037364 [NONAME]
        190      00033A74 [NONAME]
        192      0001D918 [NONAME]
        193      0000A620 [NONAME]
        194      00012F6C [NONAME]
        195      00033B0C [NONAME]
        196               [NONAME] (forwarded to SHUNIMPL.#243)
        197      00014600 [NONAME]
        198      00033B9C [NONAME]
        200      000330E0 [NONAME]
        201      000167B0 [NONAME]
        202      0001680C [NONAME]
        205      000316FC [NONAME]
        206      00031730 [NONAME]
        207      00034018 [NONAME]
        208      0001D9F0 [NONAME]
        209      0001EB28 [NONAME]
        210      0001DA88 [NONAME]
        211      00016850 [NONAME]
        216      00012C08 [NONAME]
        218      00010510 [NONAME]
        220      00033C1C [NONAME]
        221      00033D20 [NONAME]
        222               [NONAME] (forwarded to SHUNIMPL.#139)
        223               [NONAME] (forwarded to SHUNIMPL.#140)
        224               [NONAME] (forwarded to SHUNIMPL.#141)
        226               [NONAME] (forwarded to SHUNIMPL.#244)
        227               [NONAME] (forwarded to SHUNIMPL.#245)
        228      0003E9E0 [NONAME]
        229      0003E9AC [NONAME]
        230      0003E900 [NONAME]
        231      000039E4 [NONAME]
        232      0003E848 [NONAME]
        233      0000389C [NONAME]
        234      0003EB30 [NONAME]
        235      0003EA7C [NONAME]
        236      0000608C [NONAME]
        237      0000BDEC [NONAME]
        238      00004BC8 [NONAME]
        239      0000C9D8 [NONAME]
        240      00011DBC [NONAME]
        241               [NONAME] (forwarded to SHUNIMPL.#142)
        242               [NONAME] (forwarded to SHUNIMPL.#143)
        243               [NONAME] (forwarded to SHUNIMPL.#144)
        244               [NONAME] (forwarded to SHUNIMPL.#145)
        245               [NONAME] (forwarded to SHUNIMPL.#146)
        246               [NONAME] (forwarded to SHUNIMPL.#147)
        247               [NONAME] (forwarded to SHUNIMPL.#148)
        248               [NONAME] (forwarded to SHUNIMPL.#149)
        249               [NONAME] (forwarded to SHUNIMPL.#150)
        250               [NONAME] (forwarded to SHUNIMPL.#152)
        251               [NONAME] (forwarded to SHUNIMPL.#153)
        252               [NONAME] (forwarded to SHUNIMPL.#154)
        253               [NONAME] (forwarded to SHUNIMPL.#155)
        254               [NONAME] (forwarded to SHUNIMPL.#156)
        255               [NONAME] (forwarded to SHUNIMPL.#157)
        257      00033D60 [NONAME]
        258               [NONAME] (forwarded to SHUNIMPL.#158)
        259               [NONAME] (forwarded to SHUNIMPL.#159)
        260      00013868 [NONAME]
        261               [NONAME] (forwarded to SHUNIMPL.#160)
        262               [NONAME] (forwarded to SHUNIMPL.#161)
        263      0003B210 [NONAME]
        264               [NONAME] (forwarded to SHUNIMPL.#162)
        265      0003B1FC [NONAME]
        266      0000FC54 [NONAME]
        267      00010EC0 [NONAME]
        268      00011B90 [NONAME]
        269      00010984 [NONAME]
        270      00010930 [NONAME]
        271      0000BD0C [NONAME]
        272               [NONAME] (forwarded to SHUNIMPL.#163)
        273               [NONAME] (forwarded to SHUNIMPL.#164)
        274               [NONAME] (forwarded to SHUNIMPL.#316)
        275               [NONAME] (forwarded to SHUNIMPL.#317)
        277               [NONAME] (forwarded to SHUNIMPL.#240)
        278      0000BE44 [NONAME]
        279      00033EC8 [NONAME]
        281      0001F9E8 [NONAME]
        282      0001FACC [NONAME]
        283      0001E608 [NONAME]
        284      0001F9A0 [NONAME]
        285      00039C34 [NONAME]
        286      0001BBD4 [NONAME]
        287      0001DD74 [NONAME]
        288      0001E2EC [NONAME]
        289               [NONAME] (forwarded to WINMM.PlaySoundW)
        290               [NONAME] (forwarded to SHUNIMPL.#247)
        291      00033878 [NONAME]
        292      0003378C [NONAME]
        293               [NONAME] (forwarded to SHUNIMPL.#165)
        294      0003DD64 [NONAME]
        295      0003D974 [NONAME]
        296               [NONAME] (forwarded to SHUNIMPL.#314)
        297               [NONAME] (forwarded to SHUNIMPL.#315)
        298               [NONAME] (forwarded to KERNEL32.WritePrivateProfileStringW)
        299               [NONAME] (forwarded to GDI32.ExtTextOutW)
        300               [NONAME] (forwarded to GDI32.CreateFontW)
        301               [NONAME] (forwarded to USER32.DrawTextExW)
        302               [NONAME] (forwarded to USER32.GetMenuItemInfoW)
        303               [NONAME] (forwarded to USER32.InsertMenuItemW)
        304               [NONAME] (forwarded to GDI32.CreateMetaFileW)
        305               [NONAME] (forwarded to KERNEL32.CreateMutexW)
        306               [NONAME] (forwarded to KERNEL32.ExpandEnvironmentStringsW)
        307               [NONAME] (forwarded to KERNEL32.CreateSemaphoreW)
        308               [NONAME] (forwarded to KERNEL32.IsBadStringPtrW)
        309               [NONAME] (forwarded to KERNEL32.LoadLibraryW)
        310               [NONAME] (forwarded to KERNEL32.GetTimeFormatW)
        311               [NONAME] (forwarded to KERNEL32.GetDateFormatW)
        312               [NONAME] (forwarded to KERNEL32.GetPrivateProfileStringW)
        313               [NONAME] (forwarded to SHELL32.SHGetFileInfoW)
        314               [NONAME] (forwarded to USER32.RegisterClassExW)
        315               [NONAME] (forwarded to USER32.GetClassInfoExW)
        316      000110C0 [NONAME]
        317      0001CDBC [NONAME]
        318               [NONAME] (forwarded to SHELL32.DragQueryFileW)
        319               [NONAME] (forwarded to USER32.FindWindowExW)
        320      00036730 [NONAME]
        321      000367B0 [NONAME]
        322      00036680 [NONAME]
        323      000366D8 [NONAME]
        324      00036390 [NONAME]
        325      00036454 [NONAME]
        326      00036518 [NONAME]
        327      000365CC [NONAME]
        328      00036230 [NONAME]
        329      00036338 [NONAME]
        330      000369A0 [NONAME]
        331      00036A5C [NONAME]
        332               [NONAME] (forwarded to USER32.CallMsgFilterW)
        333               [NONAME] (forwarded to SHELL32.SHBrowseForFolderW)
        334               [NONAME] (forwarded to SHELL32.SHGetPathFromIDListW)
        335               [NONAME] (forwarded to SHELL32.ShellExecuteExW)
        336               [NONAME] (forwarded to SHELL32.SHFileOperationW)
        337               [NONAME] (forwarded to SHELL32.ExtractIconExW)
        338               [NONAME] (forwarded to KERNEL32.SetFileAttributesW)
        339               [NONAME] (forwarded to KERNEL32.GetNumberFormatW)
        340               [NONAME] (forwarded to USER32.MessageBoxW)
        341               [NONAME] (forwarded to KERNEL32.FindNextFileW)
        342      00033EB8 [NONAME]
        343               [NONAME] (forwarded to SHUNIMPL.#166)
        344      0000AB50 [NONAME]
        347      00036D08 [NONAME]
        348      00016E00 [NONAME]
        349      0002A328 [NONAME]
        350      00036090 [NONAME]
        351      000360D8 [NONAME]
        352      00036140 [NONAME]
        355      00032E04 [NONAME]
        356               [NONAME] (forwarded to SHUNIMPL.#167)
        357               [NONAME] (forwarded to SHELL32.SHGetNewLinkInfoW)
        358               [NONAME] (forwarded to SHELL32.SHDefExtractIconW)
        359               [NONAME] (forwarded to KERNEL32.OpenEventW)
        360               [NONAME] (forwarded to KERNEL32.RemoveDirectoryW)
        361               [NONAME] (forwarded to KERNEL32.GetShortPathNameW)
        362      00037274 [NONAME]
        363      00033EF0 [NONAME]
        364      0002A81C [NONAME]
        365      0000FD5C [NONAME]
        366      00036E54 [NONAME]
        367               [NONAME] (forwarded to KERNEL32.WritePrivateProfileStructW)
        368               [NONAME] (forwarded to KERNEL32.GetPrivateProfileStructW)
        369               [NONAME] (forwarded to KERNEL32.CreateProcessW)
        370               [NONAME] (forwarded to SHELL32.ExtractIconW)
        371               [NONAME] (forwarded to USER32.DdeInitializeW)
        372               [NONAME] (forwarded to USER32.DdeCreateStringHandleW)
        373               [NONAME] (forwarded to USER32.DdeQueryStringW)
        374               [NONAME] (forwarded to SHUNIMPL.#344)
        375               [NONAME] (forwarded to SHUNIMPL.#345)
        376               [NONAME] (forwarded to KERNEL32.GetThreadUILanguage)
        379               [NONAME] (forwarded to SHELL32.Shell_GetCachedImageIndexW)
        380               [NONAME] (forwarded to SHELL32.Shell_GetCachedImageIndexA)
        381      0002D2DC [NONAME]
        382      0001AC88 [NONAME]
        383      0003EB80 [NONAME]
        384      00033990 [NONAME]
        385               [NONAME] (forwarded to SHUNIMPL.#338)
        386               [NONAME] (forwarded to SHUNIMPL.#339)
        387               [NONAME] (forwarded to SHUNIMPL.#340)
        389               [NONAME] (forwarded to COMDLG32.GetSaveFileNameW)
        390               [NONAME] (forwarded to SHUNIMPL.#209)
        391               [NONAME] (forwarded to MPR.WNetGetLastErrorW)
        392               [NONAME] (forwarded to USER32.EndDialog)
        393               [NONAME] (forwarded to USER32.CreateDialogIndirectParamW)
        394               [NONAME] (forwarded to SHELL32.SHChangeNotify)
        395               [NONAME] (forwarded to USER32.WinHelpA)
        396               [NONAME] (forwarded to SHUNIMPL.#320)
        397               [NONAME] (forwarded to USER32.WinHelpW)
        398               [NONAME] (forwarded to SHUNIMPL.#321)
        399      0002FB1C [NONAME]
        400      0002FB50 [NONAME]
        401               [NONAME] (forwarded to COMDLG32.PageSetupDlgW)
        402               [NONAME] (forwarded to COMDLG32.PrintDlgW)
        403               [NONAME] (forwarded to COMDLG32.GetOpenFileNameW)
        404               [NONAME] (forwarded to SHUNIMPL.#313)
        405      0003A6EC [NONAME]
        406      0003A5C0 [NONAME]
        407      0002CE5C [NONAME]
        408      0002CC90 [NONAME]
        409      0002D460 [NONAME]
        410      0002D728 [NONAME]
        411               [NONAME] (forwarded to SHUNIMPL.#238)
        412               [NONAME] (forwarded to SHUNIMPL.#239)
        413      0000BBD4 [NONAME]
        414               [NONAME] (forwarded to SHUNIMPL.#323)
        415               [NONAME] (forwarded to SHUNIMPL.#322)
        416               [NONAME] (forwarded to SHUNIMPL.#325)
        417               [NONAME] (forwarded to SHUNIMPL.#324)
        419               [NONAME] (forwarded to SHELL32.SHFlushSFCache)
        420               [NONAME] (forwarded to SHUNIMPL.#241)
        421               [NONAME] (forwarded to SHUNIMPL.#242)
        422               [NONAME] (forwarded to SHUNIMPL.#168)
        423               [NONAME] (forwarded to SHUNIMPL.#169)
        424               [NONAME] (forwarded to SHUNIMPL.#170)
        425               [NONAME] (forwarded to USER32.DeleteMenu)
        426               [NONAME] (forwarded to USER32.DestroyMenu)
        427               [NONAME] (forwarded to USER32.TrackPopupMenu)
        428               [NONAME] (forwarded to USER32.TrackPopupMenuEx)
        429               [NONAME] (forwarded to SHUNIMPL.#331)
        430               [NONAME] (forwarded to SHUNIMPL.#332)
        431               [NONAME] (forwarded to SHUNIMPL.#333)
        434               [NONAME] (forwarded to USER32.SendMessageTimeoutW)
        435      00034350 [NONAME]
        436      00034360 [NONAME]
        438      0002F80C [NONAME]
        439      0000AC90 [NONAME]
        440      0003A4C4 [NONAME]
        441      0003A46C [NONAME]
        442               [NONAME] (forwarded to KERNEL32.GetEnvironmentVariableW)
        443               [NONAME] (forwarded to KERNEL32.GetSystemWindowsDirectoryA)
        444               [NONAME] (forwarded to KERNEL32.GetSystemWindowsDirectoryW)
        445      00027C88 [NONAME]
        446      0000BB28 [NONAME]
        447      00028AD8 [NONAME]
        448      00003D60 [NONAME]
        449      00027FF8 [NONAME]
        450      000033B4 [NONAME]
        451      00027B4C [NONAME]
        452      0002DD98 [NONAME]
        453      00027B18 [NONAME]
        454      00002144 [NONAME]
        455      00029928 [NONAME]
        456      0000FCEC [NONAME]
        457               [NONAME] (forwarded to KERNEL32.GetLongPathNameW)
        458               [NONAME] (forwarded to KERNEL32.GetLongPathNameA)
        459      0002BD20 [NONAME]
        460      00010C54 [NONAME]
        461      00012B80 [NONAME]
        463      0002A86C [NONAME]
        464      000029A0 [NONAME]
        465      00029E44 [NONAME]
        466      0001AAE0 [NONAME]
        468      0002DB14 [NONAME]
        469      0002D9E0 [NONAME]
        470               [NONAME] (forwarded to SHUNIMPL.#346)
        471      0000CD34 [NONAME]
        472      0003B984 [NONAME]
        473               [NONAME] (forwarded to SHUNIMPL.#171)
        474               [NONAME] (forwarded to SHUNIMPL.#172)
        475               [NONAME] (forwarded to SHUNIMPL.#211)
        476      00010650 [NONAME]
        477      0001D900 [NONAME]
        478      00014580 [NONAME]
        479      00008BFC [NONAME]
        480               [NONAME] (forwarded to SHUNIMPL.#341)
        481      0001CAEC [NONAME]
        482               [NONAME] (forwarded to SHUNIMPL.#369)
        483               [NONAME] (forwarded to SHUNIMPL.#370)
        484      0000A300 [NONAME]
        485      0003B07C [NONAME]
        486      00009444 [NONAME]
        488               [NONAME] (forwarded to SHUNIMPL.#347)
        489               [NONAME] (forwarded to KERNEL32.GlobalAddAtomW)
        490               [NONAME] (forwarded to KERNEL32.GlobalFindAtomW)
        491      00034204 [NONAME]
        492               [NONAME] (forwarded to SHUNIMPL.#357)
        493      00019E84 [NONAME]
        494      0000BC1C [NONAME]
        495      0001DD30 [NONAME]
        496      0001F774 [NONAME]
        497      0001E25C [NONAME]
        498               [NONAME] (forwarded to SHUNIMPL.#348)
        499      0001E6E0 [NONAME]
        500      00012CC0 [NONAME]
        501      000175FC [NONAME]
        502      000320CC [NONAME]
        503      0000BA0C [NONAME]
        504      000321DC [NONAME]
        505      0000B578 [NONAME]
        506      0001E9A0 [NONAME]
        507      0000B644 [NONAME]
        508      0001E4E0 [NONAME]
        509      0000A270 [NONAME]
        510      000112BC [NONAME]
        511      0000A890 [NONAME]
        514      00007B18 [NONAME]
        516      00016A7C [NONAME]
        517      0001CF38 [NONAME]
        518      00034218 [NONAME]
        519      0001BFB0 [NONAME]
        520      0000B3C8 [NONAME]
        521      0001E198 [NONAME]
        522      0001EC2C [NONAME]
        523      0001E1A8 [NONAME]
        524      0001EC3C [NONAME]
        525      0003BC6C [NONAME]
        526      0003BC7C [NONAME]
        527      0003BC0C [NONAME]
        528      0003BC1C [NONAME]
        529      0003BC2C [NONAME]
        530      0003BC3C [NONAME]
        531      00006D68 [NONAME]
        532      0001E4F0 [NONAME]
        533      00007F80 [NONAME]
        534      0001FB0C [NONAME]
        535      0001EB18 [NONAME]
        536      00007F00 [NONAME]
        537      00034294 [NONAME]
        538      00032F60 [NONAME]
        539      00032FE4 [NONAME]
        540      00033F6C [NONAME]
        541      00033FD8 [NONAME]
        542      00032F4C [NONAME]
        543               [NONAME] (forwarded to GDI32.CreateColorSpaceW)
        544      00012DAC [NONAME]
        545      000340CC [NONAME]
        546      00032D84 [NONAME]
        547               [NONAME] (forwarded to SHUNIMPL.#173)
        548      0001C86C [NONAME]
        549      0003B564 [NONAME]
        550               [NONAME] (forwarded to SHUNIMPL.#174)
        551               [NONAME] (forwarded to SHUNIMPL.#175)
        552               [NONAME] (forwarded to SHUNIMPL.#176)
        554               [NONAME] (forwarded to SHUNIMPL.#177)
        555               [NONAME] (forwarded to SHUNIMPL.#178)
        556               [NONAME] (forwarded to SHUNIMPL.#179)
        557               [NONAME] (forwarded to SHUNIMPL.#180)
        558               [NONAME] (forwarded to SHUNIMPL.#181)
        559      00016B08 [NONAME]
        560      0000B964 [NONAME]
        561      00003AE4 [NONAME]
        562      00034370 [NONAME]
        563               [NONAME] (forwarded to SHUNIMPL.#167)
        564               [NONAME] (forwarded to SHUNIMPL.#182)
        565               [NONAME] (forwarded to SHUNIMPL.#183)
        566               [NONAME] (forwarded to SHUNIMPL.#180)
        571      0001D668 [NONAME]
        572      00001620 [NONAME]
        573               [NONAME] (forwarded to SHUNIMPL.#349)
        574               [NONAME] (forwarded to SHUNIMPL.#350)
        575      00034424 [NONAME]
        576      00012DD4 [NONAME]
        577      0003BC4C [NONAME]
        578      0003BC5C [NONAME]
        580      00035174 [NONAME]
        581      0001E36C [NONAME]
        582      0003546C [NONAME]
        583      0003597C [NONAME]
        598               [NONAME] (forwarded to SHUNIMPL.#210)
        599      000311F4 [NONAME]
        600      000310E0 [NONAME]
        601               [NONAME] (forwarded to SHUNIMPL.#352)
        602               [NONAME] (forwarded to SHUNIMPL.#351)
        603               [NONAME] (forwarded to SHUNIMPL.#353)
        604               [NONAME] (forwarded to SHUNIMPL.#354)
        605               [NONAME] (forwarded to SHUNIMPL.#355)
        606               [NONAME] (forwarded to SHUNIMPL.#356)
        611      00011BBC [NONAME]
        613      0001E500 [NONAME]
        614      00017960 [NONAME]
        616      000179B0 [NONAME]
        617      00001564 [NONAME]
        618      000148F0 [NONAME]
        621      00014B7C [NONAME]
        626      0003BA6C [NONAME]
        627      0001A1BC [NONAME]
        628      0000270C [NONAME]
        629      000103E8 [NONAME]
        630      0000A5A0 [NONAME]
        631      000017F8 [NONAME]
        632      00014780 [NONAME]
        633      0000471C [NONAME]
        634      0003DE18 [NONAME]
        635      00010238 [NONAME]
        636      00019E68 [NONAME]
        637      0001D474 [NONAME]
        638      0001FBA0 [NONAME]
        639      00033F9C [NONAME]
        640      00033F20 [NONAME]
        641      0003B1F0 [NONAME]
        642      00018D5C [NONAME]
        643      0002E608 [NONAME]
        644      00039DD0 [NONAME]
        645      00039E50 [NONAME]

  Summary

        2000 .data
        6000 .pdata
       22000 .rdata
        1000 .reloc
        1000 .rsrc
       44000 .text
*/